程序员最重要的能力是什么?
今天我们邀请了 4 名淘系技术的工程师,给大家分享一些他们认为最重要的能力,希望能够为你提供一份参考。
01
淘系技术部 繁易我是一名半路出家的程序员。高中读的文科,大学选的人力资源管理专业,生活如果按部就班的下去,这个世界或许会多一位叫繁易的 HR 或者猎头,波澜不惊。
引导我走上程序员之路的故事也很简单,2014 年刚入学,大一课程少,期末时便在网络上自学起了 C 语言,当时没有电脑就在手机上的 C 语言软件敲着简单的 if/else
,就这样我入坑了。
往后的半年中,编程的学习也并没有像想象中的那样顺利。学习进度停滞不前。我还清楚的记得当时的自己:“会用20门语言输出Hello World!”,“别人一周就能上手的 BootStrap 我学了四个月” 等诸如此类的事情。
虽然整个过程中极其令人丧气,但我始终知道,我对写代码这件事情是抱有极大的兴趣的。在当时同龄的同学已经纷纷在准备考证、找实习之类的事情,而我依旧乐此不疲。
我想,如果不是因为真的有兴趣,我大概会放弃编程,选择做一些“更适合”自己的工作。
在学写代码半年后,偶然的一个契机,我找到了愿意带我写代码的同学,并磕磕绊绊的完成了第一次
Ajax
操作。那之后的我仿佛开窍了一般,编程世界的大门,终于向我敞开,任我探索和遨游。开源 - 从 Node.js 使用者到 Node.js Collaborator
在 2020 年冬季到来的时候,我遇到了新的瓶颈,想学习更多 Node.js 的知识却不知从何下手。
总结 - 兴趣与代码
在别人眼里,我是枯坐一整天的“怪人”,在我的脑海中,我是“键新世界(阿里 2018 年校招 Slogan)”的程序员。
02
淘系技术部 宝澜作为程序员,你认为最重要的能力是什么?
新手刚入门时,需要掌握写代码的能力,熟悉工作后,我们不能仅仅满足于是代码的搬运工,还需要具有深入分析问题和精准解决问题的能力。这个能力不是纵向某一个领域,更类似于思考问题的方式。
在项目合作、业务沟通、个人成长、人际交往、绩效考核各类场景,我们都会遇到一个共有的名词”问题“,由于“问题”产生的背景、原因和影响都不同,如何分析问题个根本原因并通过各种手段去解决它,非常考验我们个人的综合素养和能力。
为什么你会认为这个能力是最重要的?
掌握了这份能力,(你就是勇敢牛牛,不怕困难!)即使以后不是程序员,对我们其他的职业发展方向也会有很多帮助。
总结工作中的规律并将这类经验抽象化。
生活中的任何事物都有其生命周期,无论是食物、工作还是代码,都存在开始,发展,结束的过程。
而影响我们发展的周期和发展趋势中,最重要的影响因素就是“问题”,我们能否发现阻碍我们发展的“问题”,寻找产生的原因并修复它,决定了我们这个函数是正趋势还是负趋势。
当我们在一个工作中遇到了困难,没办法突破时,其实往往是因为我们对它的不了解或者是我们对未知事物的恐惧,能我们为了发现这个“问题”寻找解决这个问题的“方法”时,就需要不断学习学习学习,俗话说“知己知彼百战百胜”,了解对手,才有机会战胜对手,才能找到对手的“痛点”和“软肋”,而学习的过程,就是我们寻找问题产生原因的过程,找到"软肋",就是我们找到解决方法的过程。
一般我会通过这样一个流程去提升:
分析
认清问题:先好好审题再答卷,不要停留在“表面”
解决
寻找已有方案:先看别人怎么解决,如果没有,寻找问题之间的共性并关联起来,产出自己的解决方案; 拆解问题:大矛盾自己一个人解决不了,就将其拆解,分清主次,或者寻找能帮助解决问题的人; 平时多积累经验,学习别人的思维方式;
03
淘系技术部 柳千保持好奇心
我是一个充满好奇心的人,我喜欢问为什么?在我五年多的职业生涯中,有接近 2/3 时间在做 Cloud IDE 相关的工作,可以说正是好奇心驱使我做了这么多年,以至于有段时间完全忘记了自己本职是一名「前端工程师」。记得那个著名的前端面试题吗?—— 从输入 URL 到页面展示到底发生了什么?我想知道从按下「.」符号到 IDE 弹出提示框之间到底发生了什么? 为什么 VS Code 相比同类技术栈的产品这么快?Refactor 是如何实现的?当你尝试自己去解答某个问题时,一定是将这个问题拆解为很多个小问题,一步一步深入下去,最后再找到答案。重复这个过程很多次会不断的锻炼你的思维模式,也一定会学习到优秀的架构设计、更好的源码阅读与调试技巧、性能优化技巧等等...软件行业每一个看起来很小的点,深入下去都包含着非常复杂的背景和设计。可能有人会问为什么我一个「前端工程师」要了解这些东西,前端不是应该只关心切图画网页吗?还是那句老话,我先是一个工程师,然后才是前端工程师。
不设限
放大到程序员这个职业也是一样,不要将自己陷入程序员的思维定式中,觉得「程序员应该xxx,不应该xxxx」。我认识的许多优秀的工程师涉猎非常广泛,摄影、健身、游戏、B 站 Up 主、视觉设计。我也认识几个优秀的设计师能写一手代码、画 PRD。虽说隔行如隔山,但我相信程序员的学习能力都不会太差,适当的接触其他领域给自己带来的是全方位的成长。
04
淘系技术部 福豆信息技术行业的发展日新月异,每天都会出现新内容,一直保持学习的状态非常重要。
保有好奇心的重要性
结语